var runtime.trace
181 uses
runtime (current package)
mstats.go#L464: lock(&trace.lock)
mstats.go#L502: unlock(&trace.lock)
trace.go#L193: var trace struct {
trace.go#L338: firstGen := traceNextGen(trace.lastNonZeroGen)
trace.go#L341: trace.seqGC = 1
trace.go#L344: trace.headerWritten = false
trace.go#L345: trace.readerGen.Store(firstGen)
trace.go#L346: trace.flushedGen.Store(0)
trace.go#L376: trace.minPageHeapAddr = uint64(mheap_.pages.inUse.ranges[0].base.addr())
trace.go#L397: trace.enabled = true
trace.go#L400: trace.debugMalloc = debug.malloc
trace.go#L401: trace.enabledWithAllocFree = true
trace.go#L404: trace.gen.Store(firstGen)
trace.go#L419: for trace.exitingSyscall.Load() != 0 {
trace.go#L437: if trace.enabledWithAllocFree {
trace.go#L476: gen := trace.gen.Load()
trace.go#L532: ug.stackID = traceStack(0, gp, &trace.stackTab[gen%2])
trace.go#L589: trace.lastNonZeroGen = gen
trace.go#L596: lock(&trace.lock)
trace.go#L597: trace.shutdown.Store(true)
trace.go#L598: trace.gen.Store(0)
trace.go#L599: unlock(&trace.lock)
trace.go#L603: trace.enabled = false
trace.go#L606: trace.gen.Store(traceNextGen(gen))
trace.go#L693: lock(&trace.lock)
trace.go#L700: unlock(&trace.lock)
trace.go#L756: trace.stackTab[gen%2].dump(gen)
trace.go#L757: trace.typeTab[gen%2].dump(gen)
trace.go#L758: trace.stringTab[gen%2].reset(gen)
trace.go#L762: lock(&trace.lock)
trace.go#L763: trace.flushedGen.Store(gen)
trace.go#L764: unlock(&trace.lock)
trace.go#L779: if trace.enabledWithAllocFree {
trace.go#L780: trace.enabledWithAllocFree = false
trace.go#L781: debug.malloc = trace.debugMalloc
trace.go#L786: semacquire(&trace.doneSema[gen%2])
trace.go#L788: raceacquire(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L794: lock(&trace.lock)
trace.go#L795: if !trace.full[gen%2].empty() {
trace.go#L799: if !trace.full[1-(gen%2)].empty() {
trace.go#L802: if trace.reading != nil || trace.reader.Load() != nil {
trace.go#L806: for trace.empty != nil {
trace.go#L807: buf := trace.empty
trace.go#L808: trace.empty = buf.link
trace.go#L812: trace.headerWritten = false
trace.go#L813: trace.shutdown.Store(false)
trace.go#L815: unlock(&trace.lock)
trace.go#L871: trace.markWorkerLabels[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, label))
trace.go#L874: trace.goBlockReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
trace.go#L877: trace.goStopReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
trace.go#L894: if !trace.reader.CompareAndSwapNoWB(nil, gp) {
trace.go#L937: lock(&trace.lock)
trace.go#L939: if trace.reader.Load() != nil {
trace.go#L943: unlock(&trace.lock)
trace.go#L948: if buf := trace.reading; buf != nil {
trace.go#L949: buf.link = trace.empty
trace.go#L950: trace.empty = buf
trace.go#L951: trace.reading = nil
trace.go#L954: if !trace.headerWritten {
trace.go#L955: trace.headerWritten = true
trace.go#L956: unlock(&trace.lock)
trace.go#L962: if trace.readerGen.Load() == 0 {
trace.go#L963: trace.readerGen.Store(1)
trace.go#L967: assertLockHeld(&trace.lock)
trace.go#L968: gen = trace.readerGen.Load()
trace.go#L972: if !trace.full[gen%2].empty() {
trace.go#L980: if trace.flushedGen.Load() == gen {
trace.go#L982: if !trace.endOfGenerationWritten {
trace.go#L983: trace.endOfGenerationWritten = true
trace.go#L984: unlock(&trace.lock)
trace.go#L989: trace.endOfGenerationWritten = false
trace.go#L992: if trace.shutdown.Load() {
trace.go#L993: unlock(&trace.lock)
trace.go#L1003: racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L1005: semrelease(&trace.doneSema[gen%2])
trace.go#L1016: trace.readerGen.Store(trace.gen.Load())
trace.go#L1017: unlock(&trace.lock)
trace.go#L1025: racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L1027: semrelease(&trace.doneSema[gen%2])
trace.go#L1030: lock(&trace.lock)
trace.go#L1042: trace.workAvailable.Store(false)
trace.go#L1043: unlock(&trace.lock)
trace.go#L1047: tbuf := trace.full[gen%2].pop()
trace.go#L1048: trace.reading = tbuf
trace.go#L1049: unlock(&trace.lock)
trace.go#L1061: if gp == nil || !trace.reader.CompareAndSwapNoWB(gp, nil) {
trace.go#L1083: if trace.flushedGen.Load() == trace.readerGen.Load() || trace.workAvailable.Load() {
trace.go#L1084: return trace.reader.Load()
traceallocfree.go#L40: w.varint(trace.minPageHeapAddr)
traceallocfree.go#L109: return traceArg(uint64(s.base())-trace.minPageHeapAddr) / pageSize
traceallocfree.go#L133: return traceArg(uint64(addr)-trace.minPageHeapAddr) / gc.MinHeapAlign
traceallocfree.go#L155: return traceArg(uint64(base)-trace.minPageHeapAddr) / fixedStack
tracebuf.go#L145: lock(&trace.lock)
tracebuf.go#L149: unlock(&trace.lock)
tracebuf.go#L158: lock(&trace.lock)
tracebuf.go#L162: if trace.empty != nil {
tracebuf.go#L163: w.traceBuf = trace.empty
tracebuf.go#L164: trace.empty = w.traceBuf.link
tracebuf.go#L165: unlock(&trace.lock)
tracebuf.go#L167: unlock(&trace.lock)
tracebuf.go#L369: assertLockHeld(&trace.lock)
tracebuf.go#L380: trace.full[gen%2].push(buf)
tracebuf.go#L384: if !trace.workAvailable.Load() {
tracebuf.go#L385: trace.workAvailable.Store(true)
tracecpu.go#L20: trace.cpuLogRead[0] = newProfBuf(3, profBufWordCount, profBufTagCount)
tracecpu.go#L21: trace.cpuLogRead[1] = newProfBuf(3, profBufWordCount, profBufTagCount)
tracecpu.go#L29: trace.cpuLogWrite[0].Store(trace.cpuLogRead[0])
tracecpu.go#L30: trace.cpuLogWrite[1].Store(trace.cpuLogRead[1])
tracecpu.go#L42: trace.cpuSleep = newWakeableSleep()
tracecpu.go#L56: trace.cpuSleep.sleep(100_000_000)
tracecpu.go#L71: trace.cpuLogDone = done
tracecpu.go#L89: trace.cpuLogWrite[0].Store(nil)
tracecpu.go#L90: trace.cpuLogWrite[1].Store(nil)
tracecpu.go#L91: trace.cpuLogRead[0].close()
tracecpu.go#L92: trace.cpuLogRead[1].close()
tracecpu.go#L93: trace.cpuSleep.wake()
tracecpu.go#L96: <-trace.cpuLogDone
tracecpu.go#L99: trace.cpuLogDone = nil
tracecpu.go#L100: trace.cpuLogRead[0] = nil
tracecpu.go#L101: trace.cpuLogRead[1] = nil
tracecpu.go#L102: trace.cpuSleep.close()
tracecpu.go#L121: data, tags, eof := trace.cpuLogRead[gen%2].read(profBufNonBlocking)
tracecpu.go#L170: w := unsafeTraceWriter(gen, trace.cpuBuf[gen%2])
tracecpu.go#L181: stackID := trace.stackTab[gen%2].put(pcBuf[:nstk])
tracecpu.go#L191: trace.cpuBuf[gen%2] = w.traceBuf
tracecpu.go#L200: if buf := trace.cpuBuf[gen%2]; buf != nil {
tracecpu.go#L202: lock(&trace.lock)
tracecpu.go#L204: unlock(&trace.lock)
tracecpu.go#L205: trace.cpuBuf[gen%2] = nil
tracecpu.go#L235: gen := trace.gen.Load()
tracecpu.go#L264: for !trace.signalLock.CompareAndSwap(0, 1) {
tracecpu.go#L269: if log := trace.cpuLogWrite[gen%2].Load(); log != nil {
tracecpu.go#L276: trace.signalLock.Store(0)
traceevent.go#L66: return traceArg(traceStack(skip, nil, &trace.stackTab[tl.gen%2]))
traceevent.go#L76: return traceArg(trace.stackTab[tl.gen%2].put([]uintptr{
traceevent.go#L86: return traceArg(trace.stringTab[tl.gen%2].put(tl.gen, s))
traceevent.go#L93: return traceArg(trace.stringTab[tl.gen%2].emit(tl.gen, s))
traceevent.go#L98: return traceArg(trace.typeTab[tl.gen%2].put(typ))
traceruntime.go#L60: lockInit(&trace.stringTab[0].lock, lockRankTraceStrings)
traceruntime.go#L61: lockInit(&trace.stringTab[0].tab.mem.lock, lockRankTraceStrings)
traceruntime.go#L62: lockInit(&trace.stringTab[1].lock, lockRankTraceStrings)
traceruntime.go#L63: lockInit(&trace.stringTab[1].tab.mem.lock, lockRankTraceStrings)
traceruntime.go#L64: lockInit(&trace.stackTab[0].tab.mem.lock, lockRankTraceStackTab)
traceruntime.go#L65: lockInit(&trace.stackTab[1].tab.mem.lock, lockRankTraceStackTab)
traceruntime.go#L66: lockInit(&trace.typeTab[0].tab.mem.lock, lockRankTraceTypeTab)
traceruntime.go#L67: lockInit(&trace.typeTab[1].tab.mem.lock, lockRankTraceTypeTab)
traceruntime.go#L68: lockInit(&trace.lock, lockRankTrace)
traceruntime.go#L78: lockWithRankMayAcquire(&trace.lock, getLockRank(&trace.lock))
traceruntime.go#L152: return trace.enabled
traceruntime.go#L160: return trace.enabledWithAllocFree
traceruntime.go#L165: return trace.shutdown.Load()
traceruntime.go#L235: gen := trace.gen.Load()
traceruntime.go#L272: trace.exitingSyscall.Add(1)
traceruntime.go#L277: trace.exitingSyscall.Add(-1)
traceruntime.go#L308: tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGCActive, traceArg(trace.seqGC))
traceruntime.go#L311: trace.seqGC++
traceruntime.go#L319: tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGCBegin, traceArg(trace.seqGC), tl.stack(3))
traceruntime.go#L322: trace.seqGC++
traceruntime.go#L330: tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGCEnd, traceArg(trace.seqGC))
traceruntime.go#L333: trace.seqGC++
traceruntime.go#L432: w.event(tracev2.EvGoLabel, trace.markWorkerLabels[tl.gen%2][pp.ptr().gcMarkWorkerMode])
traceruntime.go#L455: tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGoStop, trace.goStopReasons[tl.gen%2][reason], tl.stack(0))
traceruntime.go#L463: tl.eventWriter(tracev2.GoRunning, tracev2.ProcRunning).event(tracev2.EvGoBlock, trace.goBlockReasons[tl.gen%2][reason], tl.stack(skip))
traceruntime.go#L700: lock(&trace.lock)
traceruntime.go#L711: unlock(&trace.lock)
tracestack.go#L247: frame.funcID = trace.stringTab[gen%2].put(gen, fn)
tracestack.go#L253: frame.fileID = trace.stringTab[gen%2].put(gen, file)
tracestring.go#L93: lock(&trace.lock)
tracestring.go#L95: unlock(&trace.lock)
tracetime.go#L108: lock(&trace.lock)
tracetime.go#L110: unlock(&trace.lock)
 |
The pages are generated with Golds v0.8.4. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |